// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 */

&msmgpio {

	blsp1_uart1_default: blsp1-uart1-default {
		//	TX, RX, CTS_N, RTS_N
		pins = "gpio0", "gpio1", "gpio2", "gpio3";
		function = "blsp_uart1";

		drive-strength = <16>;
		bias-disable;
	};

	blsp1_uart1_sleep: blsp1-uart1-sleep {
		pins = "gpio0", "gpio1", "gpio2", "gpio3";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	blsp1_uart2_default: blsp1-uart2-default {
		pins = "gpio4", "gpio5";
		function = "blsp_uart2";

		drive-strength = <16>;
		bias-disable;
	};

	blsp1_uart2_sleep: blsp1-uart2-sleep {
		pins = "gpio4", "gpio5";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi1_default: spi1-default {
		pins = "gpio0", "gpio1", "gpio3";
		function = "blsp_spi1";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio2";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi1_sleep: spi1-sleep {
		pins = "gpio0", "gpio1", "gpio2", "gpio3";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi2_default: spi2-default {
		pins = "gpio4", "gpio5", "gpio7";
		function = "blsp_spi2";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio6";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi2_sleep: spi2-sleep {
		pins = "gpio4", "gpio5", "gpio6", "gpio7";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi3_default: spi3-default {
		pins = "gpio8", "gpio9", "gpio11";
		function = "blsp_spi3";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio10";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi3_sleep: spi3-sleep {
		pins = "gpio8", "gpio9", "gpio10", "gpio11";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi4_default: spi4-default {
		pins = "gpio12", "gpio13", "gpio15";
		function = "blsp_spi4";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio14";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi4_sleep: spi4-sleep {
		pins = "gpio12", "gpio13", "gpio14", "gpio15";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi5_default: spi5-default {
		pins = "gpio16", "gpio17", "gpio19";
		function = "blsp_spi5";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio18";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi5_sleep: spi5-sleep {
		pins = "gpio16", "gpio17", "gpio18", "gpio19";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	spi6_default: spi6-default {
		pins = "gpio20", "gpio21", "gpio23";
		function = "blsp_spi6";

		drive-strength = <12>;
		bias-disable;

		cs {
			pins = "gpio22";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	spi6_sleep: spi6-sleep {
		pins = "gpio20", "gpio21", "gpio22", "gpio23";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	i2c1_default: i2c1-default {
		pins = "gpio2", "gpio3";
		function = "blsp_i2c1";

		drive-strength = <2>;
		bias-disable;
	};

	i2c1_sleep: i2c1-sleep {
		pins = "gpio2", "gpio3";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	i2c2_default: i2c2-default {
		pins = "gpio6", "gpio7";
		function = "blsp_i2c2";

		drive-strength = <2>;
		bias-disable;
	};

	i2c2_sleep: i2c2-sleep {
		pins = "gpio6", "gpio7";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	i2c4_default: i2c4-default {
		pins = "gpio14", "gpio15";
		function = "blsp_i2c4";

		drive-strength = <2>;
		bias-disable;
	};

	i2c4_sleep: i2c4-sleep {
		pins = "gpio14", "gpio15";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	i2c5_default: i2c5-default {
		pins = "gpio18", "gpio19";
		function = "blsp_i2c5";

		drive-strength = <2>;
		bias-disable;
	};

	i2c5_sleep: i2c5-sleep {
		pins = "gpio18", "gpio19";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	i2c6_default: i2c6-default {
		pins = "gpio22", "gpio23";
		function = "blsp_i2c6";

		drive-strength = <2>;
		bias-disable;
	};

	i2c6_sleep: i2c6-sleep {
		pins = "gpio22", "gpio23";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	pmx-sdc1-clk {
		sdc1_clk_on: clk-on {
			pins = "sdc1_clk";

			bias-disable;
			drive-strength = <16>;
		};
		sdc1_clk_off: clk-off {
			pins = "sdc1_clk";

			bias-disable;
			drive-strength = <2>;
		};
	};

	pmx-sdc1-cmd {
		sdc1_cmd_on: cmd-on {
			pins = "sdc1_cmd";

			bias-pull-up;
			drive-strength = <10>;
		};
		sdc1_cmd_off: cmd-off {
			pins = "sdc1_cmd";

			bias-pull-up;
			drive-strength = <2>;
		};
	};

	pmx-sdc1-data {
		sdc1_data_on: data-on {
			pins = "sdc1_data";

			bias-pull-up;
			drive-strength = <10>;
		};
		sdc1_data_off: data-off {
			pins = "sdc1_data";

			bias-pull-up;
			drive-strength = <2>;
		};
	};

	pmx-sdc2-clk {
		sdc2_clk_on: clk-on {
			pins = "sdc2_clk";

			bias-disable;
			drive-strength = <16>;
		};
		sdc2_clk_off: clk-off {
			pins = "sdc2_clk";

			bias-disable;
			drive-strength = <2>;
		};
	};

	pmx-sdc2-cmd {
		sdc2_cmd_on: cmd-on {
			pins = "sdc2_cmd";

			bias-pull-up;
			drive-strength = <10>;
		};
		sdc2_cmd_off: cmd-off {
			pins = "sdc2_cmd";

			bias-pull-up;
			drive-strength = <2>;
		};
	};

	pmx-sdc2-data {
		sdc2_data_on: data-on {
			pins = "sdc2_data";

			bias-pull-up;
			drive-strength = <10>;
		};
		sdc2_data_off: data-off {
			pins = "sdc2_data";

			bias-pull-up;
			drive-strength = <2>;
		};
	};

	pmx-sdc2-cd-pin {
		sdc2_cd_on: cd-on {
			pins = "gpio38";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-up;
		};
		sdc2_cd_off: cd-off {
			pins = "gpio38";
			function = "gpio";

			drive-strength = <2>;
			bias-disable;
		};
	};

	cdc-pdm-lines {
		cdc_pdm_lines_act: pdm-lines-on {
			pins = "gpio63", "gpio64", "gpio65", "gpio66",
			       "gpio67", "gpio68";
			function = "cdc_pdm0";

			drive-strength = <8>;
			bias-disable;
		};
		cdc_pdm_lines_sus: pdm-lines-off {
			pins = "gpio63", "gpio64", "gpio65", "gpio66",
			       "gpio67", "gpio68";
			function = "cdc_pdm0";

			drive-strength = <2>;
			bias-pull-down;
		};
	};

	ext-pri-tlmm-lines {
		ext_pri_tlmm_lines_act: ext-pa-on {
			pins = "gpio113", "gpio114", "gpio115", "gpio116";
			function = "pri_mi2s";

			drive-strength = <8>;
			bias-disable;
		};
		ext_pri_tlmm_lines_sus: ext-pa-off {
			pins = "gpio113", "gpio114", "gpio115", "gpio116";
			function = "pri_mi2s";

			drive-strength = <2>;
			bias-disable;
		};
	};

	ext-pri-ws-line {
		ext_pri_ws_act: ext-pa-on {
			pins = "gpio110";
			function = "pri_mi2s_ws";

			drive-strength = <8>;
			bias-disable;
		};
		ext_pri_ws_sus: ext-pa-off {
			pins = "gpio110";
			function = "pri_mi2s_ws";

			drive-strength = <2>;
			bias-disable;
		};
	};

	ext-mclk-tlmm-lines {
		ext_mclk_tlmm_lines_act: mclk-lines-on {
			pins = "gpio116";
			function = "pri_mi2s";

			drive-strength = <8>;
			bias-disable;
		};
		ext_mclk_tlmm_lines_sus: mclk-lines-off {
			pins = "gpio116";
			function = "pri_mi2s";

			drive-strength = <2>;
			bias-disable;
		};
	};

	/* secondary Mi2S */
	ext-sec-tlmm-lines {
		ext_sec_tlmm_lines_act: tlmm-lines-on {
			pins = "gpio112", "gpio117", "gpio118", "gpio119";
			function = "sec_mi2s";

			drive-strength = <8>;
			bias-disable;
		};
		ext_sec_tlmm_lines_sus: tlmm-lines-off {
			pins = "gpio112", "gpio117", "gpio118", "gpio119";
			function = "sec_mi2s";

			drive-strength = <2>;
			bias-disable;
		};
	};

	cdc-dmic-lines {
		cdc_dmic_lines_act: dmic-lines-on {
			clk {
				pins = "gpio0";
				function = "dmic0_clk";

				drive-strength = <8>;
			};
			data {
				pins = "gpio1";
				function = "dmic0_data";

				drive-strength = <8>;
			};
		};
		cdc_dmic_lines_sus: dmic-lines-off {
			clk {
				pins = "gpio0";
				function = "dmic0_clk";

				drive-strength = <2>;
				bias-disable;
			};
			data {
				pins = "gpio1";
				function = "dmic0_data";

				drive-strength = <2>;
				bias-disable;
			};
		};
	};

	wcnss_pin_a: wcnss-active {
		pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
		function = "wcss_wlan";

		drive-strength = <6>;
		bias-pull-up;
	};

	cci0_default: cci0-default {
		pins = "gpio29", "gpio30";
		function = "cci_i2c";

		drive-strength = <16>;
		bias-disable;
	};

	camera_front_default: camera-front-default {
		pwdn {
			pins = "gpio33";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};
		rst {
			pins = "gpio28";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};
		mclk1 {
			pins = "gpio27";
			function = "cam_mclk1";

			drive-strength = <16>;
			bias-disable;
		};
	};

	camera_rear_default: camera-rear-default {
		pwdn {
			pins = "gpio34";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};
		rst {
			pins = "gpio35";
			function = "gpio";

			drive-strength = <16>;
			bias-disable;
		};
		mclk0 {
			pins = "gpio26";
			function = "cam_mclk0";

			drive-strength = <16>;
			bias-disable;
		};
	};
};
